Dual Application |
A dual application is a Microsoft Visual Studio Solution (a set of projects) with two projects: a desktop application and a web application. Both projects may share a set of classes. After the solution has been compiled, the desktop application project will generate an executable; while the web application will generate a Microsoft IIS DLL. A dual application is used to simultaneously create a desktop application and a web application. Each application has its own GUI and set of classes, however, both applications will share a set of dual classes that can be used in either the desktop application or the web application. Una aplicación dual es una Solución (un conjunto de proyectos) de Microsoft Visual Studio con dos proyectos: una aplicación de escritorio y una aplicación web. Ambos proyectos pueden compartir un conjunto de clases. Después que la solución ha sido compilada, la aplicación de escritorio generará un ejecutable; mientras que la aplicación web generará una DLL para Microsoft IIS. Una aplicación dual es usada para crear simultáneamente una aplicación de escritorio y una aplicación web. Cada aplicación tiene su propia GUI y conjunto de clases, sin embargo, ambas aplicaciones compartirán un conjunto de clases duales que pueden usarse en la aplicación de escritorio o en la aplicación web. |
Problem 1 |
For this problem, you should have created the Calculator described in: Wintempla > Introduction > Simple Calculator . Open the Calculator Project using Microsoft Visual Studio. Para este problema, usted debe haber creado la Calculator descrita en: Wintempla > Introduction > Simple Calculator . Abra el Proyecto Calculator usando Microsoft Visual Studio. |
Step A |
Open Solution Explorer, select the solution, and right click to open the context menu. Select Add > New Project... Abra Solution Explorer, seleccione la solución y haga clic con el botón derecho del ratón para abrir el menú de contexto. Seleccione: Add > New Project... |
Step B |
Once the Add New Project window is open, select: Visual C++ > Wintempla > IIS Web Application . Set the name to CalculatorWeb. Your solution must have two projects as shown. Una vez que la ventana de Add New Project este abierta, seleccione: Visual C++ > Wintempla > IIS Web Application . Fije el nombre a CalculatorWeb. Su solución debe tener dos proyectos como se muestra. |
Step C |
Open the Index.cpp file of the CalculatorWeb project. Once the file is open, from the menu select: TOOLS > Wintempla ... Abra el archivo Index.cpp del proyecto CalculatorWeb. Una vez que el archivo este abierto, desde el menú seleccione: TOOLS > Wintempla ... |
Step D |
From the toolbar click onMerge with Desktop Application . Select the Calculator.h file from the Calculator project, and press OK. The Wizard will import the Calculator GUI to the Index web page. The Wizard will create the CalculatorDual class in the files CalculatorDual.h and CalculatorDual.cpp located in the solution folder (a level down from the project folder). You may use Browser View to review the GUI in the web page; you may edit the GUI if necessary. You cannot, however, change the name of GUI elements as they are the same names of those used in the desktop application. Press OK to close Wintempla. Desde la barra de herramientas haga clic enMerge with Desktop Application . Seleccione el archivo Calculator.h del proyecto Calculator y presione OK. El Asistente importará la GUI de Calculator a la página web Index. El Asistente creará la clase CalculatorDual en los archivos CalculatorDual.h y CalculatorDual.cpp localizados en la carpeta de la solución (un nivel abajo de la carpeta del proyecto). Usted puede usar Browser View para revisar la GUI en la página web; usted puede editar la GUI si es necesario. Usted no puede, sin embargo, cambiar el nombre de los elementos GUI ya que estos son los mismos nombres a aquellos usados en la aplicación de escritorio. Presione OK para cerrar Wintempla. |
Step E |
Open the Calculator.cpp file of the Calculator project. Once the file is open, from the menu select: TOOLS > Wintempla ... . Press OK to close Wintempla. This step is necessary to complete the merging of both GUIs. Abra el archivo Calculator.cpp del proyecto Calculator. Una vez que el archivo este abierto, desde el menú seleccione: TOOLS > Wintempla ... . Presione OK para cerrar Wintempla. Este paso es necesario para completar la combinación de ambas GUIs. |
Step F |
Edit the Calculator.cpp file of the Calculator project as shown. We will remove the code executed when the Calculate button is clicked. Instead, we will call the respective function of the CalculatorDual class. Edit el archivo Calculator.cpp del proyecto Calculator como se muestra. Nosotros removeremos el código ejecutado cuando el botón de Calculate es presionado. En su lugar, nosotros llamaremos la función respectiva de la clase CalculatorDual. |
Calculator.cpp |
... void Calculator::Window_Open(Win::Event& e) { CalculatorDual::Window_Open(*this, NULL); } void Calculator::btCalculate_Click(Win::Event& e) { CalculatorDual::btCalculate_Click(*this, NULL); } |
Step G |
Edit the CalculatorDual.cpp file as shown. In this case, we will write the code that we had in the event button click of the desktop application, however, we will change the name of all GUI elements appending a letter D at end of each name as shown. Edite el archivo CalculatorDual.cpp como se muestra. En este caso, nosotros escribiremos el código que teníamos en el evento del clic del botón de la aplicación de escritorio, sin embargo, nosotros cambiaremos el nombre de los elementos GUI agregando una letra D al final de cada nombre como se muestra. |
CalculatorDual.cpp |
... void CalculatorDual::Window_Open(Sys::IWindow& window, Web::HttpConnector* h) { } void CalculatorDual::btCalculate_Click(Sys::IWindow& window, Web::HttpConnector* h) { tbxResultD.DoubleValue = tbxXD.DoubleValue + tbxYD.DoubleValue; } |
Step H |
Use the context menu from Solution Explorer to debug the web application. Use el menú de contexto desde Solution Explorer para depurar la aplicación web. |
Tip |
Dual applications works by using Interfaces. For instance, if you have a Win::Textbox object in a desktop application, Wintempla will create a Web::Textbox object in the web application; however, from the dual class created, both textboxes will be controlled using a Sys::ITextbox interface. In some cases, you will need to edit your code to use the Sys::ITextbox functions instead of the functions of the classes: Win::Textbox or Web::Textbox. The table below summarizes these classes. The Sys::IWindow interface is basically used to open a MessageBox. Una aplicación dual opera usando interfaces. Por ejemplo, si usted tiene un objeto Win::Textbox en una aplicación de escritorio, Wintempla creará un objeto Web::Textbox en la aplicación web; sin embargo, de la clase dual creada, ambas cajas de texto serán controladas usando la interface Sys::ITextbox. En algunos casos, usted necesitará editar el código para adaptarse a las funciones de Sys::ITextbos en lugar de las funciones de las clases: Win::Textbox o Web::Textbox. La tabla de abajo resume estas clases. La interface Sys::IWindow es usada básicamente para abrir una MessageBox. |
Desktop Application | Web Application | Dual |
Win::Window | Web::Page | Sys::IWindow |
Win::Dialog | Web::Page | Sys::IWindow |
Win::Button | Web::CheckBox | Sys::IButton |
Win::Button | Web::RadioButton | Sys::IButton |
Win::Textbox | Web::Textbox | Sys::ITextbox |
Win::DropDownList | Web::DropDownList | Sys::IDropDownList |
Win::ListBox | Web::ListBox | Sys::IListBox |
Win::ListView | Web::ListView | Sys::IListView |
Win::ListView | Web::CheckBoxList | Sys::IListView |
Steps to create a Dual Application |
|